function getAuteur(id, nom){
	return { "id" : id, "nom" : nom } ;
}

function getRole(id, nom){
	return { "id" : id, "nom" : nom } ;
}

function getType(id, nom){
	return { "id" : id, "nom" : nom} ;
}

function getEmptyType(){
	return getType("", "") ;
}

function getContribution (auteur, role){
	return { "auteur" : auteur, "role" : role } ;
}

function getEmptyContribution(){
	return getContribution(getAuteur("", ""), getRole("", "")) ;
}

function addNewContribution(parent, listOfRoles, index){
	addContribution(parent, getEmptyContribution(), listOfRoles, index) ;
}

function addContribution(parent, contribution, listOfRoles, index){
	
	var editBlock = document.createElement("span") ;
	editBlock.className = "editBlock" ;
	
		var auteur = document.createElement("input") ;
		auteur.setAttribute("type", "text") ;
		auteur.setAttribute("id", "auteur_" + index) ;
		auteur.setAttribute("name", "auteur_" + index) ;
		auteur.setAttribute("value", contribution.auteur.nom) ;
		auteur.onkeyup = function() { autoComplete(this, 'ListAuteurs') ; } ;
		editBlock.appendChild(auteur) ;
		
		var auteurId = document.createElement("input") ;
		auteurId.setAttribute("type", "hidden") ;
		auteurId.setAttribute("id", "auteur_" + index + "_id") ;
		auteurId.setAttribute("name", "auteur_" + index + "_id") ;
		auteurId.setAttribute("value", contribution.auteur.id) ;
		editBlock.appendChild(auteurId) ;
		
		editBlock.appendChild(document.createTextNode(" ")) ;
		
		var roles = document.createElement("select") ;
		roles.setAttribute("id", "role_" + index + "_id") ;
		roles.setAttribute("name", "role_" + index + "_id") ;
		roles.className = "secondInput" ;
			for(var i=0; i<listOfRoles.length; i++){
				
				var r = listOfRoles[i] ;
				var role = document.createElement("option") ;
				role.setAttribute("value", r.id) ;
				if(r.id == contribution.role.id) role.setAttribute("selected", "selected") ; 
				role.innerHTML = r.nom;
				
				roles.appendChild(role) ;
			}
		editBlock.appendChild(roles) ;
		
		editBlock.appendChild(document.createTextNode(" ")) ;
		
		var deleteLabel = document.createElement("label") ;
			
			var deleteCheckbox = document.createElement("input") ;
			deleteCheckbox.setAttribute("type", "checkbox") ;
			deleteCheckbox.setAttribute("id", "delete_auteur_" + index) ;
			deleteCheckbox.setAttribute("name", "delete_auteur_" + index) ;
			deleteLabel.appendChild(deleteCheckbox) ;
			
			deleteLabel.appendChild(document.createTextNode("Supprimer")) ;
			
		editBlock.appendChild(deleteLabel) ;
		
	parent.appendChild(editBlock) ;
}

function addNewSubType(parent, index){
	addSubType(parent, getEmptyType(), index) ;
}

function addSubType(parent, type, index){
	var editBlock = document.createElement("span") ;
	editBlock.className = "editBlock" ;
	
		var subtype = document.createElement("input") ;
		subtype.setAttribute("type", "text") ;
		subtype.setAttribute("id", "subtype_" + index) ;
		subtype.setAttribute("name", "subtype_" + index) ;
		subtype.setAttribute("value", type.nom) ;
		editBlock.appendChild(subtype) ;
		
		var subtypeId = document.createElement("input") ;
		subtypeId.setAttribute("type", "hidden") ;
		subtypeId.setAttribute("id", "subtype_" + index + "_id") ;
		subtypeId.setAttribute("name", "subtype_" + index + "_id") ;
		subtypeId.setAttribute("value", type.id) ;
		editBlock.appendChild(subtypeId) ;
		
		editBlock.appendChild(document.createTextNode(" ")) ;
		
		var deleteLabel = document.createElement("label") ;
			
			var deleteCheckbox = document.createElement("input") ;
			deleteCheckbox.setAttribute("type", "checkbox") ;
			deleteCheckbox.setAttribute("id", "delete_subtype_" + index) ;
			deleteCheckbox.setAttribute("name", "delete_subtype_" + index) ;
			deleteLabel.appendChild(deleteCheckbox) ;
			
			deleteLabel.appendChild(document.createTextNode("Supprimer")) ;
			
		editBlock.appendChild(deleteLabel) ;
		
		parent.appendChild(editBlock) ;
}
	